package com.lty.jeeg.server.modules.fas.service;

import com.lty.jeeg.server.common.enums.ResponseEnum;
import com.lty.jeeg.server.modules.fas.model.OrderDetail;
import com.lty.jeeg.server.common.page.table.PageTableRequest;
import com.lty.jeeg.server.common.page.table.PageTableResponse;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author : zl
 * @date : 2019-02-17 09:18:29
 * Description : 采购明细
 */
public interface OrderDetailService {

    /**
     * 根据ID获取
     * @param id ID
     * @return bean
     */
    OrderDetail getById(Long id);

    List<OrderDetail> getByorderId(Long orderId);

    /**
     * 删除
     * @param id ID
     * @return 1/0
     */
    int delete(Long id);

    /**
     * 修改
     * @param orderDetail bean
     * @return 1/0
     */
    int update(OrderDetail orderDetail);

    /**
     * 保存
     * @param orderDetail bean
     * @return ID
     */
    Long save(OrderDetail orderDetail);

    /**
     * 列表
     * @param request ID
     * @return 分页
     */
    PageTableResponse list(PageTableRequest request);

    /**
     * 修改订单明细里的订单状态
     * @return
     */
    int changeType(Long id,String type);

    /**
     * 获取订单下的订单详细列表
     * @param orderId
     * @return
     */
    List<OrderDetail> findOrderDetailListByOrderId(Long orderId);

    /**
     *交付
     * @return
     */
    ResponseEnum deliver(HttpServletRequest request);

    /**
     * 校验当前明细所属需求单是否全部交付
     * @param smOrderDetail
     */
    void checkOrderType(OrderDetail smOrderDetail);

    /**
     * 取消交付
     * @param id
     * @return
     */
    ResponseEnum cancel(Long id);
}
